const path = require('path'); //引入node自带的path模块

//该插件用于复制首页index.html文件到根目录,方便预览
const HtmlWebpackPlugin = require('html-webpack-plugin');
const htmlPlugin = new HtmlWebpackPlugin({
    template: './src/index.html',
    filename: 'index.html'
})

module.exports = {
    mode: "production", //开发模式development  , 发布产品模式 production
    entry: path.join(__dirname, './src/index.js'), //入口文件的地址
    output: {
        path: path.join(__dirname, './dist'), //输出文件的地址
        filename: 'bundle.js'
    },
    plugins: [htmlPlugin], //插件列表
    module: { //加载器列表
        rules: [{
                //不带postcss的用于处理css文件,带postcss可以自动给css加前缀,处理兼容问题
                //test设置需要匹配的文件类型，支持正则
                test: /\.css$/,
                //use表示该文件类型需要调用的loader
                use: ['style-loader', 'css-loader', 'postcss-loader']
            },
            // 用于处理less文件
            {
                test: /\.less$/,
                use: ['style-loader', 'css-loader', 'less-loader']
            },
            //用于处理scss文件
            {
                test: /\.scss$/,
                use: ['style-loader', 'css-loader', 'sass-loader']
            },
            //用于处理图片和字体资源
            {
                test: /\.jpg|png|gif|bmp|ttf|eot|svg|woff|woff2$/,
                //limit用来设置字节数，只有小于limit值的图片，才会转换
                //为base64图片
                use: "url-loader?limit=16940"
            },
            //用于处理js中的高级语法
            {
                test: /\.js$/,
                use: "babel-loader",
                //exclude为排除项，意思是不要处理node_modules中的js文件
                exclude: /node_modules/
            }
        ]
    }
}